#pragma once
#include <util.ice>

module Xts
{
	module XInterBank
	{
		//价格类型
		enum XBondPriceType{
			YieldPrice,				//收益率
			NetPrice,				//净价
			FullPrice				//全价
		};
		
		//债券类型
		enum XBondType{
			TreasuryBond,			//国债
			FinancialBond			//金融债
		};
		
		//债券标识
		["clr:class", "cs:attribute:System.Serializable"] 
		struct XBondTag
		{
			string						SymbolId;				//证券代码
			string						SymbolName;				//证券简称
			XBondType					BondType;				//债券类型
		};
		
		//登陆登出认证请求信息
		["clr:class", "cs:attribute:System.Serializable"] 
		struct XIdentityReq
		{
			string						UserId;					//用户名
			string						Password;				//用户密码
		};
		
		//操作结果信息，用于返回请求操作结果是否成功，以及系统（出错）信息描述
		["clr:class", "cs:attribute:System.Serializable"] 
		struct XOprtInfo
		{
			bool						IsSucc;					//操作是否成功，true成功，false失败
			string						Description;			//系统信息描述
		};
		
		//登陆结果
		["clr:class", "cs:attribute:System.Serializable"] 
		struct XLoginRsp
		{
			XOprtInfo					OprtInfo;				//操作结果信息
			string						SessionId;				//会话Id,如成功，服务端会为该用户创建一个会话对象, 如登陆失败该字段不可用
			string						SessionDsb;				//服务端会话对象Proxy信息, 如登陆失败该字段不可用
			
		};
		
		//登陆服务接口
		["amd"] interface IXLoginServer
		{
			XLoginRsp 	Login(XIdentityReq req);				//登陆
			XOprtInfo	Logout(XIdentityReq req);				//登出
		};
		
		//请求交易委托接口结果
		["clr:class", "cs:attribute:System.Serializable"] 
		struct XRetrieveOrderDeliveryRsp
		{
			XOprtInfo					OprtInfo;				//操作结果信息
			string						OrderDelieveryDsb;		//服务端交易委托接口对象Proxy信息, 如操作失败该字段不可用
		};
		
		//请求查询接口结果
		["clr:class", "cs:attribute:System.Serializable"] 
		struct XRetrieveTradingQueryRsp
		{
			XOprtInfo					OprtInfo;				//操作结果信息
			string						TradingQueryDsb;		//服务端交易查询接口对象Proxy信息, 如操作失败该字段不可用
		};
		
		//证券代码序列
		sequence<string> XSymbolIdSeries;
		
		//会话接口
		["amd"] interface IXSession
		{
			XRetrieveOrderDeliveryRsp	RetrieveOrderDelivery();																	//获取交易委托接口Proxy
			XRetrieveTradingQueryRsp	RetrieveTradingQuery();																		//获取交易查询接口Proxy
			XOprtInfo					SubscribeSnapshotData(XSymbolIdSeries symbolIdList, string snapshotDataMonitorDsb);			//订阅快照（五档）行情数据，参数1为订阅证券列表，参数2为客户端行情回调接受对象Proxy
			XOprtInfo					SubscribeQuoteDetailData(XSymbolIdSeries symbolIdList, string quoteDetailDataMonitorDsb);	//订阅报单明细行情数据，参数1为订阅证券列表，参数2为客户端行情回调接受对象Proxy
			XOprtInfo					SubscribeOrderNotify(string orderNotifyerDsb);												//订阅交易回报回调，参数为客户端交易回报回调对象的Proxy
		};
		
		//交易方向
		enum XTransactionDirection{Buy, Sell};
		
	};
};